#pragma once 
#include <bits/stdc++.h>

/*****************************************************************************
 *! @brief C++11 增加无序容器unordered_map/unordered_multimap, unordered_ser/ + 
 *!          unordered_multiset, 由于这些容器元素不排序，因此相较有序容器效率更高.
 *!  实现方式： 有序容器实现通过红黑树， 无序的实现通过哈希表        
 *!
 *!  使用: 无需的实现需要提供hash_value的函数. 
 * 
 * 
 *  
 ****************************************************************************/

struct Key {
    std::string  fisrt;
    std::string  second;
};

//! 提供给无序容器的哈希函数
struct KeyHash {
    std::size_t operator()(const Key& k) const {
        return std::hash<std::string>{}(k.fisrt) ^ std::hash<std::string>{}(k.second);
    }
};

struct KeyEqual {
    bool operator()(const Key& lhs, const Key& rhs) const {
        return lhs.fisrt == rhs.fisrt && lhs.second == rhs.second;
    }
};



int std_unordered_container();